﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
using System.Text.RegularExpressions;

namespace WebPiket3Csv
{
    class PrjProperty
    {
        /// <summary>
        /// Заголовок шага
        /// </summary>
        public static List<string> stepList;
        /// <summary>
        /// Путь страницы
        /// </summary>
        public static List<string> pagesList;
        /// <summary>
        /// Описание к страницы
        /// </summary>
        public static List<string> descList;
        /// <summary>
        /// Текущая страница
        /// </summary>
        public static int curPageNo;
        /// <summary>
        /// Текст файла данных
        /// </summary>
        public static string txtDataPkt;
        /// <summary>
        /// Текст файла данных
        /// </summary>
        public static string txtDataSts;

        public static string fileNamePkt;
        public static string fileNameSts;

        public static ObservableCollection<Piket> pikets;

        /// <summary>
        /// Флаг - Выводить сплеи
        /// </summary>
        public static bool propertyIsSplay;
        /// <summary>
        /// Флаг - Центральные точки
        /// </summary>
        public static bool propertyIsSplayCentarlPoint;
        /// <summary>
        /// Масштаб
        /// </summary>
        public static double  propertyScale;


        public static void Init()
        {
            propertyScale = 10;
            propertyIsSplay = true;
            propertyIsSplayCentarlPoint = false;
            
            fileNamePkt = "";
            fileNameSts = "";
            txtDataPkt = "";
            txtDataSts = "";
            curPageNo = 0;
            
            pagesList = new List<string>();
            descList = new List<string>();
            stepList = new List<string>();

            System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();

            stepList.Add("Шаг1.Выбор файла");
            pagesList.Add("pack://application:,,,/" + asm.GetName().Name + ";component/" + "Page1-Files.xaml");
            descList.Add("Укажите фаилы");

            stepList.Add("Шаг2.Просмотр файлов");
            pagesList.Add("pack://application:,,,/" + asm.GetName().Name + ";component/" + "Page2-Editor.xaml");
            descList.Add("Проверте выбранные файлы");

            stepList.Add("Шаг3.Таблица");
            pagesList.Add("pack://application:,,,/" + asm.GetName().Name + ";component/" + "Page3-Table.xaml");
            descList.Add("Проверте сформированную таблицу");

            pikets = new ObservableCollection<Piket>();
        }


		#region Tools
		static public double StrToDouble(string val)
		{
			double ret = 0.0;
			val = Regex.Replace(val, @"\,|\.", System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
			val = val.Trim();
			if (IsDouble(val))
				ret = Convert.ToDouble(val);
			return ret;
		}
		static public string DoubleToStr(double val)
		{
			string ret = val.ToString();
			ret = Regex.Replace(ret, @"\,|\.", @".");
			return ret;
		}

		static public bool IsDouble(string val)
		{
			bool isOk=false;
			isOk = Regex.IsMatch(val, @"\d+(\.\d+)?");
			return isOk;
		}
		#endregion
    }
}
